package com.ruoyi.trade.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 投资信息对象 investment_info
 * 
 * @author ruoyi
 * @date 2025-09-24
 */
public class InvestmentInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 投资信息id */
    private Long investmentId;

    /** 投资人姓名 */
    @Excel(name = "投资人姓名")
    private String investorName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String identificationNumber;

    /** 关系 */
    @Excel(name = "关系")
    private String relationship;

    /** 甲方资金银行 */
    @Excel(name = "甲方资金银行")
    private String partyABank;

    /** 乙方收入银行 */
    @Excel(name = "乙方收入银行")
    private String partyBBank;

    /** 投资金额 */
    @Excel(name = "投资金额")
    private BigDecimal investmentAmount;

    /** 股份 */
    @Excel(name = "股份")
    private String shares;

    /** 投资时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "投资时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date investmentDate;

    /** 计划 */
    @Excel(name = "计划")
    private String planName;

    /** 抽成率 */
    @Excel(name = "抽成率")
    private String commissionRate;

    /** 抽成生效开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "抽成生效开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveStartDate;

    /** 抽成生效结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "抽成生效结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveEndDate;

    /** 已分红利 */
    @Excel(name = "已分红利")
    private BigDecimal distributedDividend;

    /** 未分红利 */
    @Excel(name = "未分红利")
    private BigDecimal undistributedDividend;

    /** 累计分红权 */
    @Excel(name = "累计分红权")
    private BigDecimal cumulativeDividendRight;

    /** 独立运营标识：0-否，1-是 */
    @Excel(name = "独立运营标识：0-否，1-是")
    private Integer independentFlag;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public String getIdentificationNumber() {
        return identificationNumber;
    }

    public void setIdentificationNumber(String identificationNumber) {
        this.identificationNumber = identificationNumber;
    }

    public Long getInvestmentId() {
        return investmentId;
    }

    public void setInvestmentId(Long investmentId) {
        this.investmentId = investmentId;
    }

    public String getInvestorName() {
        return investorName;
    }

    public void setInvestorName(String investorName) {
        this.investorName = investorName;
    }

    public String getRelationship() {
        return relationship;
    }

    public void setRelationship(String relationship) {
        this.relationship = relationship;
    }

    public String getPartyABank() {
        return partyABank;
    }

    public void setPartyABank(String partyABank) {
        this.partyABank = partyABank;
    }

    public String getPartyBBank() {
        return partyBBank;
    }

    public void setPartyBBank(String partyBBank) {
        this.partyBBank = partyBBank;
    }

    public BigDecimal getInvestmentAmount() {
        return investmentAmount;
    }

    public void setInvestmentAmount(BigDecimal investmentAmount) {
        this.investmentAmount = investmentAmount;
    }

    public String getShares() {
        return shares;
    }

    public void setShares(String shares) {
        this.shares = shares;
    }

    public Date getInvestmentDate() {
        return investmentDate;
    }

    public void setInvestmentDate(Date investmentDate) {
        this.investmentDate = investmentDate;
    }

    public String getPlanName() {
        return planName;
    }

    public void setPlanName(String planName) {
        this.planName = planName;
    }

    public String getCommissionRate() {
        return commissionRate;
    }

    public void setCommissionRate(String commissionRate) {
        this.commissionRate = commissionRate;
    }

    public Date getEffectiveStartDate() {
        return effectiveStartDate;
    }

    public void setEffectiveStartDate(Date effectiveStartDate) {
        this.effectiveStartDate = effectiveStartDate;
    }

    public Date getEffectiveEndDate() {
        return effectiveEndDate;
    }

    public void setEffectiveEndDate(Date effectiveEndDate) {
        this.effectiveEndDate = effectiveEndDate;
    }

    public BigDecimal getDistributedDividend() {
        return distributedDividend;
    }

    public void setDistributedDividend(BigDecimal distributedDividend) {
        this.distributedDividend = distributedDividend;
    }

    public BigDecimal getUndistributedDividend() {
        return undistributedDividend;
    }

    public void setUndistributedDividend(BigDecimal undistributedDividend) {
        this.undistributedDividend = undistributedDividend;
    }

    public BigDecimal getCumulativeDividendRight() {
        return cumulativeDividendRight;
    }

    public void setCumulativeDividendRight(BigDecimal cumulativeDividendRight) {
        this.cumulativeDividendRight = cumulativeDividendRight;
    }

    public Integer getIndependentFlag() {
        return independentFlag;
    }

    public void setIndependentFlag(Integer independentFlag) {
        this.independentFlag = independentFlag;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    @Override
    public String toString() {
        return "InvestmentInfo{" +
                "investmentId=" + investmentId +
                ", investorName='" + investorName + '\'' +
                ", identificationNumber='" + identificationNumber + '\'' +
                ", relationship='" + relationship + '\'' +
                ", partyABank='" + partyABank + '\'' +
                ", partyBBank='" + partyBBank + '\'' +
                ", investmentAmount=" + investmentAmount +
                ", shares='" + shares + '\'' +
                ", investmentDate=" + investmentDate +
                ", planName='" + planName + '\'' +
                ", commissionRate='" + commissionRate + '\'' +
                ", effectiveStartDate=" + effectiveStartDate +
                ", effectiveEndDate=" + effectiveEndDate +
                ", distributedDividend=" + distributedDividend +
                ", undistributedDividend=" + undistributedDividend +
                ", cumulativeDividendRight=" + cumulativeDividendRight +
                ", independentFlag=" + independentFlag +
                ", createdAt=" + createdAt +
                ", updatedAt=" + updatedAt +
                '}';
    }
}
